home *** CD-ROM | disk | FTP | other *** search
-
- PROGRAM ComChk;
-
- USES Crt;
-
- FUNCTION HexWord(a : Word) : String;
- CONST
- Digit : ARRAY[$0..$F] OF Char = '0123456789ABCDEF';
- VAR
- I : Byte;
- HexStr : String;
-
- BEGIN
- HexStr := '';
- FOR I := 1 TO 4 DO
- BEGIN
- Insert(Digit[a AND $000F], HexStr, 1);
- a := a SHR 4
- END;
- HexWord := HexStr;
- END; {hex}
-
-
- PROCEDURE UncodePort(NR : integer);
- VAR
- B, M, V1, V2, TLRC, D, MSB, LSB : integer;
- S, CO : integer;
- Baud : real;
- Answer : string[10];
- ComList : array[1..4] OF word ABSOLUTE $0000:$0400;
- BEGIN
- CO := ComList[NR];
- WriteLn;
- WriteLn ('Communications Port ', NR, ':');
- IF CO = 0 THEN
- BEGIN
- WriteLn (' Not installed.');
- Exit;
- END;
-
- S := Port[CO + 3];
- TLRC := Port[CO + 3];
- Port[CO + 3] := TLRC OR $80;
- LSB := Port[CO];
- MSB := Port[CO + 1];
- D := 256 * MSB + LSB;
- Baud := 115200.0 / D;
- Port[CO + 3] := TLRC AND $7F;
-
- {Display port address}
- WriteLn (' Port address: ', HexWord (ComList[NR]));
-
- {Display baud rate}
- WriteLn (' Baud rate: ', Baud:5:0);
-
- {Display data bits}
- IF (S AND 3) = 3 THEN
- B := 8
- ELSE IF (S AND 2) = 2 THEN
- B := 7
- ELSE IF (S AND 1) = 1 THEN
- B := 6
- ELSE
- B := 5;
- WriteLn (' Data bits: ', B:5);
-
- {Display stop bits}
- IF (S AND 4) = 4 THEN
- B := 2
- ELSE
- B := 1;
- WriteLn (' Stop bits: ', B:5);
-
- IF (S AND 24) = 24 THEN
- Answer := 'Even'
- ELSE IF (S AND 8) = 8 THEN
- Answer := 'Odd'
- ELSE
- Answer := 'None';
- WriteLn (' Parity: ', Answer:5);
- END; {procedure Uncode_Setup_Of_Port}
-
- BEGIN
- ClrScr;
- WriteLn ('Communications Port Status--------------------------');
- UncodePort (1);
- UncodePort (2);
- UncodePort (3);
- UncodePort (4);
- END.
-